วิธีอัปโหลดไฟล์โดยตรงไปยัง EFS ด้วย AWS Transfer Family ผ่าน SFTP
สวัสดีครับ ผมจะมาอธิบายเกี่ยวกับ วิธีอัปโหลดไฟล์โดยตรงไปยัง EFS ด้วย Transfer Family ผ่าน SFTP
เราสามารถใช้ S3 และ EFS ใน Transfer Family ได้ ครั้งนี้ผมจะมาสาธิตการเชื่อมต่อกับ EFS ครับ
Service ที่จะใช้ในบทความนี้คือ:
- Amazon Elastic File System (EFS)
- File systems
- Amazon EC2
- Security Groups
- Elasstic IPs
- AWS Identity and Access Management (IAM)
- Roles
- AWS Transfer Family
- Servers
โปรแกรมที่จะใช้ในบทความนี้คือ:
- WinSCP
เป้าหมายในการทำ
กาารสร้าง EFS
ไปที่ช่องค้นหา พิมพ์ ?︎EFS
» เลือกEFS
มาที่เมนูด้านซ้าย เลือกFile systems
Name:tinnakorn-test
(ชื่ออะไรก็ได้) » กดปุ่มCreate
ทีนี้เราก็จะได้ EFS ของเรามาแล้วครับ
การสร้าง Elastic IP และ Security Group ใน EC2
การสร้างฟังก์ชัน Elastic IP (EIP) และ Security Group นี้ จะอยู่ใน Service ที่ชื่อว่า EC2
ก่อนที่จะเริ่มสร้างฟังก์ชันที่กล่าวมานี้ ให้ค้นหา ServiceEC2
แล้วคลิกที่EC2
ตามรูปภาพ แล้วเริ่มขั้นตอนถัดไปได้เลย
การสร้าง Elastic IP (EIP)
มาที่เมนูด้านซ้าย เลือกElastic IPs
คลิกปุ่มAllocate Elastic IP address
เลื่อนลงมาด้านล่างเพื่อตั้งค่า Tags
① คลิกAdd new tag
② Key:Name
③ Value - optional:tinnakorn-test-transferfamily
④ คลิกAllocate
เมื่อเสร็จแล้วจะแสดงหน้าจอแบบนี้
การสร้าง Security Group สำหรับใช้กับ EFS
มาที่หัวข้อ ▼ Network & Security เลือกSecurity Groups
การตั้งค่า Basic details:
» Security group name:tinnakorn-test-transferfamily
(ชื่ออะไรก็ได้)
» Description:tinnakorn-test-transferfamily
(ชื่ออะไรก็ได้)
การตั้งค่า Inbound rules:
① คลิกปุ่มAdd rule
② Type:SSH
③ Source:My IP
เมื่อตั้งค่าเสร็จแล้ว เลื่อนลงมาด้านล่างสุด คลิกที่ปุ่มCreate security group
ได้เลยครับ
สร้าง Key Pair ด้วย PuTTYgen
ขั้นตอนนี้จะทำการสร้าง Key Pair โดยใช้โปรแกรม PuTTYgen เพื่อนำไปใช้ในการสร้าง AWS Transfer Family
ผู้ใช้งานที่มีโปรแกรม PuTTY อยู่แล้ว ข้ามขั้นตอนนี้ไปได้เลยครับ
สำหรับผู้ใช้งานที่ยังไม่เคยใช้โปรแกรม PuTTY สามารถ Download PuTTY ได้ที่นี่เลยครับ
การดาวน์โหลดและติดตั้งโปรแกรมควรเลือกให้ตรงกับระบบ Windows ของเรา เช่น ถ้าระบบ Windows ของเราเป็น 64-bit ก็ให้เลือกดาวน์โหลดเป็น
64-bit x86
เป็นต้น ซึ่งในปัจจุบันนี้ 32-bit ก็ไม่ค่อยมีแล้ว หรือ อาจจะพบได้ในคอมพิวเตอร์รุ่นเก่าที่มีขนาด RAM ต่ำกว่า 4 GB นั่นเอง ทั้งนี้ทั้งนั้นเพื่อความชัวร์ ! แนะนำให้ตรวจสอบระบบ Windows ของเราก่อนดาวน์โหลดและติดตั้งโปรแกรมจะดีที่สุดครับ
เมื่อทำการติดตั้งเรียบร้อยแล้ว เปิดโปรแกรมขึ้นมาโดยพิมพ์คำว่าPuTTYgen
ในคอมพิวเตอร์ของเรา แล้วคลิกเข้ามาได้เลย
รอโปรแกรมทำการสร้าง Key Pair สักครู่ เมื่อเสร็จแล้วจะแสดงหน้าจอแบบนี้
จากนั้นคลิกที่Save private key
ตั้งชื่อไฟล์ เช่นtinnakorn-test
แล้ว Save เป็นไฟล์.ppk
ลงคอมพิวเตอร์ตาม path หรือที่อยู่ที่เราต้องการ
Copy Key ไว้ที่ใดที่หนึ่ง เช่น Notepad
การเตรียม Key Pair เสร็จเรียบร้อยแล้วครับ
การสร้าง Role ใน IAM
เข้ามาที่ Service IAM โดยค้นหา ?︎IAM
» เลือกIAM
การตั้งค่า Step 1 : Select trusted entity:
Trusted entity type
» เลือกAWS service
Use case
» เลือก Use cases for other AWS services:Transfer ▼
» ติ๊ก ◉ Transfer
» คลิกNext
Step 2 : Add permissions:
» ค้นหาAmazonElasticFileSystemClientFullAccess
» ติ๊ก✅
AmazonElasticFileSystemClientFullAccess
» คลิกNext
Step 3 : Name, review, and create:
Role details:tinnakorn-test-transferfamily-role
(ชื่ออะไรก็ได้)
เลื่อนลงมาด้านล่างสุด กดปุ่มCreate role
การสร้าง AWS Transfer Family
ค้นหาAWS Transfer Family
คลิกAWS Transfer Family
Step 1 Choose protocols:
เลือก✅
SFTP คลิกNext
Step 2 Choose an identity provider:
เลือกService managed
คลิกNext
Step 3 Choose an endpoint:
» เลือกVPC hosted
» เลือกInternet Facing
แล้วจะมี Custom hostname แสดงขึ้นมา
» เลือก VPC (Default) แล้วจะมี Availability Zones แสดงขึ้นมา
Availability Zones:
» ติ๊ก✅
ap-southeast-1a
» เลือก Subnet ID ปัจจุบันที่มีอยู่
» เลือก IPv4 Address หรือ EIP ที่เราสร้างเมื่อสักครู่นี้
ลบ Security Group ของ Default ออกโดยคลิกที่กากบาท✕
เลือก Security Group ที่เราสร้างเมื่อสักครู่นี้
คลิกNext
ที่ปุ่มด้านล่างสุด
Step 4 Choose a domain:
เลือกAmazon EFS
กดปุ่มNext
Step 5 Configure additional details:
เลื่อนลงมาด้านล่างสุด คลิกที่ปุ่มNext
Step 6 Review and create:
เลื่อนลงมาด้านล่างสุด คลิกที่ปุ่มCreate server
จากนั้นรอการสตาร์ทระบบ Server สักครู่
เมื่อสร้างเสร็จแล้วจะแสดงหน้าจอแบบนี้ ซึ่งในส่วนของ State จะเป็น Starting
ให้รอจนกว่า State เปลี่ยนเป็น Online การสตาร์ท Server จึงจะเสร็จสมบูรณ์
จากนั้นคลิกเข้าไปที่ Server ID ของเรา
การสร้าง User
เราจะทำการสร้าง User นี้เพื่อจะนำไปใช้ Login ในโปรแกรม WinSCP ซึ่งในส่วนนี้จะอธิบายในขั้นตอนถัดไป
เมื่อเข้ามาที่ Server ของเราแล้ว ให้มาที่หัวข้อ Users
แล้วคลิกปุ่มAdd user
ตรงไหนก็ได้
การตั้งค่า User configuration:
» Username:tinnakorn
(ชื่ออะไรก็ได้)
» User ID:0
(ไม่บังคับ: โดยปกติการตั้งค่าเป็น 0 จะส่งผลให้มีการเข้าถึงในฐานะผู้ใช้ที่มีสิทธิ์ root)
» Group ID:0
(ไม่บังคับ: โดยปกติการตั้งค่าเป็น 0 จะส่งผลให้มีการเข้าถึงในฐานะผู้ใช้ที่มีสิทธิ์ root)
» Role:tinnakorn-test-transferfamily-role
(เลือก Role ที่สร้างไว้ตอนแรก)
» Home directory:tinnakorn-test
(เลือก EFS ที่สร้างไว้ตอนแรก และถ้ามีการกรอกข้อมูลในช่อง [ Enter optional folder ] อัตโนมัติ ให้ลบออกได้เลย)
วาง Key Pair ลงในช่อง SSH public key ที่สร้างไว้ตอนแรก
มาที่ด้านล่างสุด กดปุ่มAdd
เมื่อสร้างเสร็จแล้วจะแสดงหน้าจอแบบนี้
มาที่หัวข้อ Endpoint details:
Copy Endpoint เตรียมไว้ที่ใดที่หนึ่ง เช่น Nodepad
การอัปโหลดไฟล์ด้วย WinSCP
ขั้นตอนนี้เราจะมาทำการเชื่อมต่อเข้าไปยัง WinSCP และลองทดสอบการอัปโหลดไฟล์เข้าไปยัง EC2 ผ่าน EFS ที่เชื่อมต่อกับ WinSCP โดยผ่าน SFTP
ผู้ใช้งานที่มีโปรแกรม WinSCP แล้ว ข้ามขั้นตอนนี้ไปได้เลยครับ
สำหรับผู้ใช้งานที่ยังไม่มี WinSCP ให้ทำการดาวน์โหลดที่ลิงก์ด้านล่างนี้เลยครับ
เมื่อมีโปรแกรม WinSCP แล้ว เปิดโปรแกรมขึ้นมา
การตั้งค่า Login WinSCP:
» ดูที่ด้านซ้าย เลือกNew Site
» ดูที่ด้านขวา เลือกSFTP
» วาง Host name:s-773f9132c********.server.transfer.ap-southeast-1.amazonaws.com
» User name:tinnakorn
(ใส่ User name ที่สร้างใน Server ID ของเรา)
» คลิกAdvanced... |▼
คลิกที่SSH
>Authentication
คลิก...
ของช่อง Private key file:
เลือกไฟล์ .ppk ที่ Save ไว้ตอนแรก แล้วกดOpen
Site name:tinnakorn-test-transferfamily
(ชื่ออะไรก็ได้)
คลิกOK
ดูที่ด้านซ้าย ดับเบิ้ลคลิกที่ชื่อของเรา เช่นtinnakorn-test-transferfamily
เมื่อ Login ได้โดยไม่ขึ้น Error ใดๆ ก็จะแสดงหน้าจอแบบนี้
ด้านซ้าย: จะเป็นที่เก็บข้อมูลในคอมพิวเตอร์ของเรา
ด้านขวา: จะเป็นที่เก็บข้อมูลของ EFS
ลองอัปโหลดไฟล์จากเครื่องคอมพิวเตอร์ของเราไปยังที่เก็บข้อมูลใน EFS โดยการลากแล้ววางลงที่ด้านขวาได้เลย
จะเห็นว่าเราสามารถอัปโหลดข้อมูลไปยัง EFS ได้อย่างง่ายดายเลยครับ
การลบฟังก์ชันใน Service ต่างๆ ที่ได้สร้างขึ้น
การลบฟังก์ชันใน Service ต่างๆ ถ้าเราไม่รู้ลำดับของการลบฟังก์ชันก็จะทำให้เกิด Error เวลาลบ หรือไม่สามารถลบได้นั่นเอง เช่น ถ้าทำการลบ Security Group ที่กำลังเชื่อมต่ออยู่กับ EFS โดยที่ไม่ลบ EFS ก่อน ก็จะไม่สามารถลบ Security Group ได้ เป็นต้น ดังนั้นแนะนำให้ลบตามขั้นตอนที่ผมเรียงไว้ได้เลยครับ
การลบ File systems ใน EFS
เข้ามาที่ Service EFS แล้วทำการลบ
การลบ Server ใน AWS Transfer Family
เข้ามาที่ Service Transfer Family แล้วทำการลบ
หมายเหตุ: เมื่อเราใช้งานเสร็จแล้ว แนะนำให้ทำการ Delete ไปเลย เพราะว่าต่อให้เรา Stop ไว้ ก็ยังต้องเสียค่าบริการที่คิดเป็นชั่วโมงนั่นเอง
- สามารถดูข้อมูลเพิ่มเติมได้ที่ ราคา AWS Transfer Family
การลบ Elastic IP และ Security Group ใน EC2
เข้ามาที่ Service EC2 แล้วทำการลบ
การลบ Role ใน IAM
เข้ามาที่ Service IAM แล้วทำการลบ
สรุป
เมื่อทำตามขั้นตอนทั้งหมดนี้แล้ว เราจะสามารถใช้ WinSCP ในการอัปโหลด แก้ไข หรือลบไฟล์ใน EFS ได้ตามต้องการโดยไม่ต้องใช้ Amazon EC2
เมื่อเราใช้งานเสร็จแล้ว แนะนำให้ทำการ Delete ไปเลย เพราะว่าต่อให้เรา Stop ไว้ ก็ยังต้องเสียค่าบริการที่คิดเป็นชั่วโมงนั่นเอง